If A and QC=0 Then Amreg(2,0)=-Amreg(2,0) : Amreg(2,1)=-Amreg(2,1) : QC=1
If A=0 Then QC=0
AN=Min(Max(AN+KSP,0),8) : U=0
MY=Max(Min(Y Mouse,222+AN),67-AN) : V=MA-MY
Amreg(0)=X Sprite(4) : Amreg(1)=Y Sprite(4)
X=Min(Max((X Sprite(4)-124+RX)/8,0),39)
Y=Min(Max((Y Sprite(4)-65+RY)/16,0),11)
Sprite 2,428,MY,2+AN : I$=Inkey$
F=F(X,Y) : GL=Max(GL-1,0)
If M=2 Then Gosub PAUSE
If M=1 Then AUT=0
If Amreg(1,3)=1 Then Inc SC : U=1 : Amreg(1,3)=0 : If SO Then Extension_8_145A 2,1,5000+Rnd(2000)
Exit If Amreg(1,3)=2
A=Sprite Col(4,2 To 2) : If A and C=0 Then C=1 : Gosub BOUNCE
If A=0 Then C=0
A=Sprite Col(6,4 To 4) : If A and C2=0 Then Swap RX,RY : C2=Amreg(2,1) : Amreg(2,1)=Amreg(2,0) : Amreg(2,0)=C2 : C2=1 : If SO Then Extension_8_145A 4,4,5000
If A=0 Then C2=0
If I$<>"" Then Gosub KEYS
If F>0 Then Gosub BLOCK
Amreg(1,0)=RX : Amreg(1,1)=RY
MA=MY : If ST<1 Then Exit
If U Then Gosub DISPLAY
Loop
Amreg(1,3)=0
If ST<>0
For A=AN To 8 : Sprite 2,428,MY,A+2 : Wait Vbl : Next
If SO : Extension_8_145A 4,3,5000 : End If
For A=1 To 6 : Sprite 2,427,MY,A+18 : Wait Vbl : Wait Vbl : Next
Sprite Off 2 : Wait 4
End If
If ST>0 and LI>1 Then Dec LI : Gosub NORMAL : Goto NEWLIVE
If F(Max(SX/32,0),Max(SY/64,0))=0 Then AX=Max(SX/32,0) : AY=Max(SY/64,0)
Next : F2=0
If F=17 Then AUT=1 : KSP=1 : BAP=0 : Gosub NORMAL
If F=16 Then LI=LI+1 : U=1 : KSP=1 : BAP=0 : AUT=0 : Gosub NORMAL : If SO Then Extension_8_145A 4,5,8000
If F=15 Then KSP=1 : BAP=1 : AUT=0 : Gosub BAP
If F=14 Then KSP=-1 : BAP=0 : AUT=0 : Gosub NORMAL
If F=13 Then KSP=1 : BAP=0 : AUT=0 : F(39,BL)=12 : Put Cblock 13,328,BL*16+8 : F(39,BL+1)=12 : Put Cblock 13,328,BL*16+24 : Gosub NORMAL
If F>12 and F<18 and SO Then Extension_8_145A 1,6,10000
If F=6 Then Add SC,100 : Inc U : F2=Rnd(4)+13 : Gosub RANDOM : If SO Then Extension_8_145A 2,4,8500+Rnd(1000)
If F>6 and F<11 Then Add SC,100 : Inc U : F2=F+1 : Gosub RANDOM : If SO Then Extension_8_145A 2,1,5000+Rnd(2000)
If F<6 or F=11 or F>12 Then Add SC,Min(F,5)*250 : Inc U : If SO Then Extension_8_145A 2,2,7500+Rnd(1000)
If F<6 or F=11 Then Dec ST
If F=12 Then Add SC,2 : Inc U : F2=12 : If SO Then Extension_8_145A 2,1,5000+Rnd(2000)
If AX<>X Then RX=-RX
If AY<>Y Then RY=-RY
F(X,Y)=F2 : Put Cblock F2+1,X*8+16,Y*16+8
Return
PAUSE:
P=1 : Amal Freeze
Bob 1,150,83,14 : Bob 2,142,108,18 : Bob 3,142,118,15
Bob 4,191,118,17-SO : Bob 5,191,108,17-MU : Wait Vbl
MUA=MU : SOA=SO
Repeat
Y Mouse=MY : I$=Inkey$ : Gosub KEYS
If Mouse Key=1 or ST=-1 Then P=0
If MUA<>MU Then MUA=MU : Bob 5,191,108,17-MU : Wait Vbl
If SOA<>SO Then SOA=SO : Bob 4,191,118,17-SO : Wait Vbl
Until P=0
Repeat : Until Mouse Key=0
Bob Off
Amal On
Return
KEYS:
If I$="p" and P=1 Then P=0 : Return
If I$="p" and P=0 Then Gosub PAUSE : Return
If I$=Chr$(27) Then ST=-1 : Return
If I$="s" and SO=0 Then SO=1 : Return
If I$="s" and SO=1 Then SO=0 : Return
If I$="m" and MU=1 Then MU=0 : Extension_8_10C6 0 : Return
If I$="m" and MU=0 and Length(3)<>0 Then MU=1 : Extension_8_10C6 MV : Return
If I$="m" and MU=0 Then Amal Freeze : Extension_8_0456 "mod.InGame",-3 : Extension_8_108E 3 : Extension_8_10C6 MV : MU=1 : If P=0 Then Gosub PAUSE : Return
If I$="n" Then MV=Max(MV-1,10) : If MU Then Extension_8_10C6 MV : Return
If I$="j" Then MV=Min(MV+1,63) : If MU Then Extension_8_10C6 MV : Return
If I$="a" and SV>25 Then Add SV,-2 : Extension_8_1466 SV : Extension_8_145A 2,1,5000 : Return
If I$="w" and SV<63 Then Add SV,2 : Extension_8_1466 SV : Extension_8_145A 2,1,5000 : Return
' If I$="l" and LED=0 Then Led On : LED=1 : Return
' If I$="l" and LED=1 Then Led Off : LED=0 : Return
If I$=Tab$ and PAL=1 Then Poke $DFF1DC,$20 : PAL=0 : Return
If I$=Tab$ and PAL=0 Then Poke $DFF1DC,0 : PAL=1 : Return